팀 문서를 호스팅 서비스 대신 직접 운영하려면 무엇이 필요한지 정리합니다. 서버를 맡을 사람이 있다면 데이터와 도메인을 직접 쥘 수 있고, 없다면 호스팅 서비스가 더 나은 선택일 수 있습니다. 예시는 오픈소스 위키 엔진 AhaWiki 기준입니다.
1. 직접 운영할 때 맡게 되는 일
- 백업. 데이터베이스 백업과 복구 연습이 온전히 운영자의 일입니다. 복구해 본 적 없는 백업은 믿을 수 없습니다.
- 업데이트. 라이브러리 보안 패치를 따라가야 합니다.
- 도메인과 인증서. DNS, HTTPS 인증서, 리버스 프록시를 직접 관리합니다.
- 로그인. 누가 어떤 계정으로 들어오는지 정해야 합니다.
이 일을 감당할 수 없으면 직접 운영의 장점보다 위험이 더 큽니다.
2. AhaWiki 에 필요한 것
- JDK, sbt
- MySQL 호환 데이터베이스
- Redis
- 관리자 화면을 빌드할 Node
- 로그인에 쓸 Google OAuth 클라이언트
설치 순서는 Dev RunningLocally, 배포는 Dev Deploying 을 보세요. 소스는 GitHub 에 GPL-3.0 으로 공개되어 있습니다.
3. 한 번 설치로 여러 위키
AhaWiki 는 설치 하나가 도메인별로 여러 위키를 맡습니다. 팀마다, 프로젝트마다 위키를 나눠도 서버를 늘릴 필요가 없습니다. 페이지, 권한, 테마가 도메인별로 따로입니다. 새 위키를 여는 절차는 Setup 에 있습니다.
4. 권한은 처음에 정합니다
가장 먼저 정할 것은 «바깥 사람이 읽을 수 있는가» 입니다. AhaWiki 는 권한 규칙에 없으면 거부하므로, 필요한 것만 열면 됩니다.
- 팀 안에서만 — 로그인한 팀원에게만 읽기와 쓰기를 엽니다.
- 공개 위키 — 모두에게 읽기를 열고 쓰기는 팀원에게만 엽니다.
- 공개 위키 안의 비공개 페이지 — 페이지 이름 규칙으로 일부만 막습니다. 예를 들어
Private로 시작하는 이름만 막을 수 있습니다.
목록과 검색도 읽을 수 없는 페이지를 숨깁니다. 규칙의 형식은 AccessControl 에 있습니다.
5. 팀에서 먼저 만들 페이지
- FrontPage — 새로 온 사람이 처음 볼 곳. 링크 다섯 개면 충분합니다.
- 회의록 — 날짜 페이지에 쓰고 안건을 링크합니다. 형식이 정해져 있으면 PageTemplate 으로 시작 내용을 만들어 둘 수 있습니다.
- 프로젝트 홈 — 프로젝트마다 한 페이지. 일정은 InterpreterGantt, 할 일은 InterpreterKanban 을 페이지 안에 둘 수 있습니다.
- RecentChanges — 누가 무엇을 고쳤는지 하루에 한 번 보는 습관이 문서를 살립니다.
7. See Also
7.2. Similar Pages
Similar pages by cosine similarity. Words after page name are term frequency.